XEN_SCRIPTS += network-nat vif-nat
XEN_SCRIPTS += block
XEN_SCRIPTS += block-enbd
+XEN_SCRIPTS += xen-hotplug-common.sh
XEN_HOTPLUG_DIR = /etc/hotplug
XEN_HOTPLUG_SCRIPTS = xen-backend.agent
#!/bin/sh
-set -e
-
-export PATH=/sbin:/bin:/usr/bin:/usr/sbin:$PATH
+dir=$(dirname "$0")
+. "$dir/xen-hotplug-common.sh"
expand_dev() {
local dev
major=$(stat -L -c %t "$1")
minor=$(stat -L -c %T "$1")
pdev=$(printf "0x%02x%02x" 0x$major 0x$minor)
- xenstore-write "$XENBUS_PATH"/physical-device $pdev \
+ xenstore_write "$XENBUS_PATH"/physical-device $pdev \
"$XENBUS_PATH"/node $1
}
-t=$(xenstore-read "$XENBUS_PATH"/type)
+t=$(xenstore_read "$XENBUS_PATH"/type || true)
case $1 in
bind)
- p=$(xenstore-read "$XENBUS_PATH"/params)
+ p=$(xenstore_read "$XENBUS_PATH"/params)
case $t in
phy)
dev=$(expand_dev $p)
;;
unbind)
- node=$(xenstore-read "$XENBUS_PATH"/node)
+ node=$(xenstore_read "$XENBUS_PATH"/node)
case $t in
phy)
exit 0
--- /dev/null
+set -e
+
+export PATH=/sbin:/bin:/usr/bin:/usr/sbin:$PATH
+
+log() {
+ local level="$1"
+ shift
+ logger -p "daemon.$level" -- "$0:" "$@" || echo "$0 $@" >&2
+}
+
+xenstore_read() {
+ local v=$(xenstore-read "$XENBUS_PATH"/type || true)
+ if [ "$v" == "" ]
+ then
+ log error "xenstore-read $XENBUS_PATH/type failed."
+ exit 1
+ fi
+ echo "$v"
+}
+
+xenstore_write() {
+ log debug "Writing $@ to xenstore."
+ xenstore-write "$@" || log error "Writing $@ to xenstore failed."
+}
+
+log debug "$@" "XENBUS_PATH=$XENBUS_PATH"